//
//  CZMainViewController.swift
//  weibo
//
//  Created by Apple on 16/3/8.
//  Copyright © 2016年 KY. All rights reserved.
//

import UIKit
import SVProgressHUD

class CZMainViewController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        //  设置tabbar
        let tabBar = CZTabBar()
        //  不能给get-only属性赋值
//        self.tabBar = tabBar
        //  使用kvc给get-only属性赋值
        setValue(tabBar, forKey: "tabBar")
        //  设置闭包,使用weak，解决循环引用
        tabBar.composeButtonClosure = { [weak self] in
            
            //  如果没有登录，弹出提示框
            if !CZUserAccountViewModel.sharedAccount.userLogin {
                SVProgressHUD.showErrorWithStatus("请先登录!")
                return
            }
            
            
            //  添加磨砂视图
            self?.composeViewAnimation()
            
            
        }
//        tabBar.tabBarDelegate = self
        
        //  设置子视图控制器
        viewControllers = customViewControllers()
    }
    
    private func composeViewAnimation() {
        let composeView = CZComposeView()
        composeView.show(self)
    }
    
    
    private func customViewControllers() -> [UINavigationController] {

        //  设置Tabbar图片渲染颜色,统一tabbar设置选中颜色和文字颜色
        //UITabBar.appearance().tintColor = UIColor.orangeColor()
        
        //  需要显示的控制器
        let vcsArray = [CZHomeTableViewController(), CZMessageTableViewController(), CZDiscoverTableViewController(), CZProfileTableViewController()]
        //  需要显示的title
        let titlesArray = ["首页", "消息", "发现", "我"]
        //  需要显示的图片
        let imagesArray = ["tabbar_home", "tabbar_message_center", "tabbar_discover", "tabbar_profile"]
        
        //  导航控制器
        var navsArray = [CZNavigationController]()
        
        //  遍历4次添加子视图控制器
        for (i, value) in vcsArray.enumerate() {
            //  设置自定义tabbaritem
            value.tabBarItem = CZTabBarItem()
            
            //  设置显示文本
//            value.navigationItem.title = titlesArray[i]
//            value.tabBarItem.title = titlesArray[i]
            value.title = titlesArray[i]
            //  设置显示的tabbar的图标
            value.tabBarItem.image = UIImage(named: imagesArray[i])
            //  设置显示的tabbar选中的图片
//            value.tabBarItem.selectedImage = UIImage(named: imagesArray[i] + "selected")
            //  使用原始图片显示
            value.tabBarItem.selectedImage = UIImage(named: imagesArray[i] + "_selected")?.imageWithRenderingMode(.AlwaysOriginal)
            //  设置tabbarItem文字的选中颜色
            value.tabBarItem.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.orangeColor()], forState: .Selected)
            //  设置tabbarItem文字大小
            value.tabBarItem.setTitleTextAttributes([NSFontAttributeName: UIFont.systemFontOfSize(12)], forState: .Normal)
            
            //  设置添加导航控制器
            navsArray.append(CZNavigationController(rootViewController: value))
            
        }
        
        return navsArray
        
    }
    
    // MARK:    析构函数
    deinit {
        print("mainvc over")
    }
    
    
}

////  测试代理回调
//extension CZMainViewController: CZTabBarDelegate {
//    func composeButtonCallBack() {
//        print("打印了")
//        print(self.view)
//    }
//}
